<!DOCTYPE html>
<html lang="en">

  <head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>全局变量和局部变量</title>
  </head>

  <body>

  </body>
  <script>
    /* 
    全局变量和局部变量
    1.全局变量：在全局作用域下声明的变量叫做全局变量
       1.1 在函数内部，没有通过var声明的变量是全局变量
    2.局部变量：在局部作用域下声明的变量叫做局部变量
       2.1 函数的形参也是局部变量
    3.全局变量和局部变量的区别
      3.1 在任何一个地方都可以使用，只有在浏览器关闭时才会被销毁，因此比较占内存
      3.2 只在函数内部使用，当其所在的代码块被执行时，会被初始化；当代码块运行结束后，就会被销毁，因此更节省内存空间   
     */
    var num1 = 10; //全局变量

    function func(args) {
      console.log(num1); //10
      var num2 = 20; //局部变量
      num3 = 30; //全局变量
      console.log(args); //['a','b','c']
    }
    func(['a', 'b', 'c']);
    console.log(num2); //报错，Uncaught ReferenceError: num2 is not defined
    console.log(num3); //30
    console.log(args); //02.全局变量和局部变量.html:69 Uncaught ReferenceError: arg is not defined
  </script>

</html>